package io.geekidea.boot.test.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.test.dto.PayOrderDto;
import io.geekidea.boot.test.entity.PayOrder;
import io.geekidea.boot.test.query.PayOrderQuery;
import io.geekidea.boot.test.vo.PayOrderVo;
import io.geekidea.boot.test.query.AppPayOrderQuery;
import io.geekidea.boot.test.vo.AppPayOrderVo;


/**
 * 订单 服务接口
 *
 * @author geekidea
 * @since 2025-03-26
 */
public interface PayOrderService extends IService<PayOrder> {

    /**
     * 添加订单
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addPayOrder(PayOrderDto dto);

    /**
     * 修改订单
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updatePayOrder(PayOrderDto dto);

    /**
     * 删除订单
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deletePayOrder(Long id);

    /**
     * 订单详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    PayOrderVo getPayOrderById(Long id);

    /**
     * 订单分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<PayOrderVo> getPayOrderPage(PayOrderQuery query);

    /**
     * App订单详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppPayOrderVo getAppPayOrderById(Long id);

    /**
     * App订单分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppPayOrderVo> getAppPayOrderPage(AppPayOrderQuery query);

}
